﻿using System.DirectoryServices.Protocols;

namespace IntegrationTests
{
    using DirectoryServicesProtocolsExtensions.LdapConnection;

    public class MockFabrikamActiveDirectoryConnectionPropertiesContainer : ILdapConnectionPropertiesContainer
    {
        private string hostOrDomainName = "fabrikam.com";
        private int hostPortNumber = 636;
        private string connectionAccountName = "administrator";
        private string connectionAccountPassword = "";
        private bool useSSL;
        private bool useProcessSecurityContextFlag = true;
        private AuthType authType = AuthType.Negotiate;

        public string HostOrDomainName
        {
            get
            {
                return hostOrDomainName;
            }

            set
            {
                hostOrDomainName = value;
            } 
        }

        public int LdapHostPortNumber
        {
            get
            {
                return hostPortNumber;
            }

            set
            {
                hostPortNumber = value;
            }
        }

        public string ConnectionAccountName
        {
            get
            {
                return connectionAccountName;
            }

            set
            {
                connectionAccountName = value;
            }
        }

        public string ConnectionAccountPassword
        {
            get
            {
                return connectionAccountPassword;
            }

            set
            {
                connectionAccountPassword = value;
            }
        }

        public bool UseProcessSecurityContextFlag 
        { 
            get
            {
                return useProcessSecurityContextFlag;
            }

            set
            {
                useProcessSecurityContextFlag = value;
            }
       }

        public bool UseSSLFlag
        {
            get
            {
                return useSSL;
            }

            set
            {
                useSSL = value;
            }
        }

        public AuthType AuthType
        {
            get
            {
                return authType;
            }
            set
            {
                authType = value;
            }
            
        }
    }
}
